% $Id: algo2symb.sty,v 1.11 2006/09/03 15:11:58 gabi Exp $
% Informacion sobre el package para el sistema
\NeedsTeXFormat{LaTeX2e}

% Antes que nada, cargamos el paquete RCS.
\RequirePackage{rcs}

\RCSdate $Date: 2006/09/03 15:11:58 $
\RCS $Revision: 1.11 $

\ProvidesPackage{algo2symb}[2004/04/17 v\RCSRevision Para componer simbolitos frecuentemente usados en AED2]

% Imprimir un mensajito al procesar un .tex que use este package
\typeout{Cargando package 'aed2symb' v\RCSRevision, \RCSDate}

% Aseguremonos de cargar los packages de la AMS
\RequirePackage{amsmath}
\RequirePackage{amssymb}

% xspace sirve para no tener que poner \ al final de las macros.
\RequirePackage{xspace}

% Redefinimos \implies para que use la flecha corta
\renewcommand\implies{\DOTSB \;\Rightarrow \;}
% Algo parecido para el <=>
\newcommand{\ssi}{\ensuremath{\Longleftrightarrow}\xspace}

% Macro general para componer un operador con subindice sin cursiva
\newcommand\opsub[2]{\ensuremath{#1_{\mathrm{#2}}}}

% Constantes true y false.
\newcommand{\true}{\ensuremath{\mathit{true}}}
\newcommand{\false}{\ensuremath{\mathit{false}}}

% Conectivos logicos con "luego"
\newcommand\yluego{\opsub{\land}{\scriptscriptstyle{L}}}
\newcommand\oluego{\opsub{\lor}{\scriptscriptstyle{L}}}
\newcommand\impluego{\opsub{\Rightarrow}{\scriptscriptstyle{L}}}

% Simbolos del TAD Secu
\newcommand\secuvacia{\ensuremath{<>}}
\newcommand\puntito{\ensuremath{\bullet}\xspace}
\newcommand\circulito{\ensuremath{\circ}\xspace}

% Complejidad
\newcommand\Ode[1]{\ensuremath{O(#1)}}
\newcommand\ode[1]{\ensuremath{o(#1)}}
\newcommand\Omegade[1]{\ensuremath{\Omega(#1)}}
\newcommand\Thetade[1]{\ensuremath{\Theta(#1)}}

% Para operador = con subindice que no debe ir en cursiva
\newcommand\igsub[1]{\opsub{=}{#1}}

% En particular, la igualdad observacional se usa mucho
\newcommand\igobs{\igsub{obs}\xspace}

% Para indicar la presencia de un argumento en notacion infija o sufija
\newcommand\argumento{\ensuremath{\bullet}\xspace}

% Macro para la flecha del dominio a la imagen de las funciones.
\newcommand\en{\ensuremath{\rightarrow}\xspace}
% Macro para la flecha de asignacin, en pseudocdigo.
\newcommand{\asig}{\ensuremath{\leftarrow}\xspace}

% Para componer el nombre de un TAD en small capitals
% Esto funciona OK tanto en modo texto como math
\newcommand\nombretad[1]{\textsc{#1}}

% Para componer el nombre de una funcin suelta (en la prosa).
\newcommand\nombrefunc[1]{\textit{#1}\xspace}

% Macros para los if_then_else_fi.
\newcommand{\lif}{\textrm{\textbf{if}}\ }
\newcommand{\lthen}{\ \textrm{\textbf{then}}\ }
\newcommand{\lelse}{\ \textrm{\textbf{else}}\ }
\newcommand{\lfi}{\ \textrm{\textbf{fi}}\ }

% Recuadro.
\newcommand{\recuadrar}[1]{\framebox{\parbox{0.9\textwidth}{#1}}}

% Macro para los rotulitos de los axiomas.
\newcommand{\ax}[1]{\ensuremath{\textrm{ax}_{\textrm{#1}}}}

% Macro para "es equivalente por".
\newcommand{\eqpor}[1]{\ensuremath{\ \underset{#1}{\equiv}}\ }

% La 'N' de los naturales.
\newcommand{\N}{{\rm I\!N}\xspace}

% Simbolito de "cuidado".
\newcommand{\cuidado}{{\LARGE $\Delta$\!\!\!}{\small !}\ \xspace}

% El sombrerito.
\newcommand{\sombrerito}{ \ensuremath{\widehat{ }} \xspace}

% Macro para "alfa" que anda tanto en math mode como fuera de l
\newcommand\alfa{\ensuremath{\alpha}}

% Macro para "de alfa" (incluyendo parntesis)
\newcommand\dealfa{\ensuremath{(\alpha)}}

% Macro para componer los "para todo" en notacin con dos puntos (sin parntesis)
\newcommand\paratodo[2]{$\forall #2$: #1}

% La versin del documento.
\newcommand{\version}{\RCSRevision\ }

%estos los hize yo (thomas)

% tupla de 2 elementos
\newcommand\dupla[2]{$<$ #1 $\times$ #2 $>$}

% tupla de 3 elementos
\newcommand\trupla[3]{$<$ #1 $\times$ #2 $\times$ #3 $>$}

% tupla de 4 elementos
\newcommand\cuadrupla[4]{$<$ #1 $\times$ #2 $\times$ #3 $\times$ #4 $>$}
